1954. Мозаика

 

У Пети есть n квадратных карточек. Он хочет сложить из них один большой квадрат (без пустот). Сколько карточек у него останется?

 

Вход. Одно натуральное число n (1 ≤ n ≤ 109).

 

Выход. Вывести количество оставшихся карточек.

 

Пример входа 1

Пример выхода 1

1

0

 

 

Пример входа 2

Пример выхода 2

27

2

 

 

РЕШЕНИЕ

математика

 

Анализ алгоритма

Максимальная сторона квадрата, который может сложить Петя, равна a = . Следовательно на складывание квадрата Петя потратит a2 карточек. И у него останется na2 карточек.

 

Реализация алгоритма

Читаем входное значение n. Вычисляем и выводим ответ.

 

scanf("%d", &n);

a = (int)sqrt(n);

printf("%d\n", n - a * a);

 

Java реализация

 

import java.util.*;

 

public class Main

{

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);

    int n = con.nextInt();

    int a = (int)Math.sqrt(n);

    int res = n - a * a;

    System.out.println(res);

    con.close();

  }

}

 

Python реализация

 

import math

n = int(input())

a = int(math.sqrt(n))

print(n - a * a)